package com.cskaoyan.javase.oop2._2polymorphic._1basic;


/**
 * 当存在父类引用指向不同子类对象时:
 *      1.父子类同名成员变量的访问是没有多态现象的
 *          它的访问遵循:
 *          编译时（访问范围）看左边，运行时（访问结果）还看左边。
 *
 *      2.父子类同名成员方法的调用(当出现方法重写时)是存在多态现象的
 *          方法调用遵循:
 *          编译（访问范围）看左边，运行时（调用结果）看右边。
 *
 * @since 09:35
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father fs;
        fs = new BigSon();
        System.out.println(fs.num);
        fs.test();
        fs = new LittleSon();
        System.out.println(fs.num);
        fs.test();
    }

}

class Father {
    int num = 10;

    void test() {
        System.out.println("我是爹");
    }
}

class BigSon extends Father {
    int num = 20;

    @Override
    void test() {
        System.out.println("大儿子");
    }
}

class LittleSon extends Father {
    int num = 30;

    @Override
    void test() {
        System.out.println("小儿子");
    }
}